package com.bupt.hotel.hvac.model.dto;

import com.bupt.hotel.hvac.model.enums.ACMode;
import com.bupt.hotel.hvac.model.enums.RoomType;
import jakarta.validation.constraints.*;
import lombok.Data;

/**
 * 入住DTO
 */
@Data
public class CheckInDTO {

    /**
     * 房间号
     */
    @NotBlank(message = "房间号不能为空")
    private String roomId;

    /**
     * 客户姓名
     */
    @NotBlank(message = "客户姓名不能为空")
    private String guestName;

    /**
     * 客户电话
     */
    @NotBlank(message = "客户电话不能为空")
    @Pattern(regexp = "^1[3-9]\\d{9}$", message = "手机号格式不正确")
    private String guestPhone;

    /**
     * 身份证号
     */
    @NotBlank(message = "身份证号不能为空")
    @Pattern(regexp = "^[1-9]\\d{5}(18|19|20)\\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$", message = "身份证号格式不正确")
    private String idCard;

    /**
     * 入住天数
     */
    @NotNull(message = "入住天数不能为空")
    @Min(value = 1, message = "入住天数至少为1天")
    @Max(value = 30, message = "入住天数不能超过30天")
    private Integer stayDays;

    /**
     * 房间类型（STANDARD-标准间, DELUXE-大床房, SUITE-豪华套房）
     */
    @NotNull(message = "房间类型不能为空")
    private RoomType roomType;

    /**
     * 空调模式（可选，默认制冷）
     */
    private ACMode mode;
}
